$(function() {

	init();
	searchType("2", "#softwareTypeSearch", "<option value=''>全部</option>", "");
	// 页面初始化调用方法
	function init() {
		// 1.初始化Table
		var roleTable = new TableInit();
		roleTable.Init();
		// 2.初始化Button的点击事件
		var roleButtonInit = new ButtonInit();
		roleButtonInit.Init();
	}
});
function searchType(sId, id, str, softwareType) {
	$.ajax({
		"url" : "../../../LKJSoftwareVersion/getSysVersionTypeList",
		"type" : "post",
		"data" : {
			"sId" : sId
		},
		"dataType" : "json",
		"success" : function(result) {
			if (result.flag == 0) {
				var list = result.content;
				ajaxAppendType(list, id, str);
				if (softwareType != "" && softwareType != null) {
					$("#softwareType").val(softwareType);
				}
			} else {
				$(id).empty();
				warning(result.errorInfo);
			}
		},
		"error" : function() {
			var content = "软件类型查询失败!";
			warning(content);
		}
	});
}
// 动态添加软件类型
function ajaxAppendType(list, id, str) {
	for (var i = 0; i < list.length; i++) {
		str += "<option id=" + list[i].ID + " value=" + list[i].TYPE + ">"
				+ list[i].SYS_NAME + "</option>";
	}
	$(id).empty();
	$(id).append(str);
}
// 根据条件查询
function doSearch() {
	$.ajax({
		"url" : "../../../LKJSoftwareVersion/getVersionList",
		"type" : "post",
		"data" : { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize, pageNumber,
			// searchText, sortName, sortOrder
			pageSize : 10, // 页面大小
			pageNumber : 1, // 页码
			sortName : "VERSION_NAME",
			sortOrder : "DESC",
			versionType : "2",
			versionName : $("#versionNameSearch").val(),
			versionNumber : $("#versionNumberSearch").val(),
			softWareType : $("#softwareTypeSearch").val()
		},
		"dataType" : "json",
		"success" : function(result) {
			if (result.flag == 0) {
				$("#LKJDataVersionManagerTables").bootstrapTable('load', {
					"total" : result.content.total,// 总页数
					"rows" : result.content.list
				});
			} else {
				warning(result.errorInfo);
			}
		},
		"error" : function() {
			var content = "LKJ数据版本查询失败";
			warning(content);
		}
	});
}
// 弹出新增页面
function add() {
	BootstrapDialog
			.show({
				title : '新增LKJ数据版本',
				message : $(
						"<form id='myform' class='form-inline' style='height:400px'></form>")
						.load('addLKJDataVersionManager.html'),
				onshown : function() {
					searchType("2", "#softwareType", "");
				},
				buttons : [
						{
							icon : 'glyphicon glyphicon-check',
							label : '确定',
							cssClass : 'btn-primary',
							autospin : true,
							action : function(dialogRef) {
								var formData = new FormData(document
										.getElementById("myform"));// 表单id
								var packageText = $("#upload_file").val();
								if (packageText.trim() == ""
										|| packageText == null) {
									var content = "LKJ数据文件不能为空!";
									warning(content);
								} else {
									$
											.ajax({
												url : '../../../LKJSoftwareVersion/addVersion',
												type : 'POST',
												data : formData,
												async : false,
												cache : false,
												contentType : false,
												processData : false,
												success : function(result) {
													if (result.flag == 0) {
														var content = "新增成功!!!";
														success(content);
														doSearch();
													} else {
														var content = result.errorInfo;
														warning(content);
													}
												}
											});
								}
							}
						}, {
							label : '取消',
							action : function(dialogRef) {
								dialogRef.close();
							}
						} ]
			});
}
// 弹出编辑页面
function edit() {
	var selectVersion = $("#LKJDataVersionManagerTables").bootstrapTable(
			'getSelections');
	if (selectVersion.length == 0) {
		var content = "请选择要编辑的LKJ数据版本!";
		info(content);
	} else {
		var softwareType = selectVersion[0].SOFTWARE_TYPE;
		var versionDetail = selectVersion[0].VERSION_DETAIL;
		var versionId = selectVersion[0].VERSION_ID;
		var versionName = selectVersion[0].VERSION_NAME;
		BootstrapDialog
				.show({
					title : '编辑LKJ数据版本',
					message : $(
							"<form id='myform' class='form-inline' style='height:400px'></form>")
							.load('addLKJDataVersionManager.html'),
					onshown : function() {
						searchType("2", "#softwareType", "", softwareType);
						$("#versionDetail").val(versionDetail);
						$("#versionId").val(versionId);
						$("#upload_file_tmp").val(versionName);
					},
					buttons : [
							{
								icon : 'glyphicon glyphicon-check',
								label : '确定',
								cssClass : 'btn-primary',
								autospin : true,
								action : function(dialogRef) {
									var formData = new FormData(document
											.getElementById("myform"));// 表单id
									var packageText = $("#upload_file_tmp")
											.val();
									var packageTextTmp = $("#upload_file")
											.val();
									if (packageText.trim() == ""
											|| packageText == null) {
										var content = "LKJ数据文件不能为空!!!!";
										warning(content);
									} else if (packageText != versionName) {
										if (packageTextTmp.trim() == ""
												|| packageText == null) {
											var content = "文件不正确,请重新添加!!!!";
											warning(content);
										} else {
											versionFile(formData);
										}
									} else {
										versionFile(formData);
									}
								}
							}, {
								label : '取消',
								action : function(dialogRef) {
									dialogRef.close();
								}
							} ]
				});
	}
}
// 发送编辑请求
function versionFile(formData) {
	$.ajax({
		url : '../../../LKJSoftwareVersion/editVersion',
		type : 'POST',
		data : formData,
		async : false,
		cache : false,
		contentType : false,
		processData : false,
		success : function(result) {
			if (result.flag == 0) {
				var content = "修改成功!!!";
				success(content);
				doSearch();
			} else {
				var content = result.errorInfo;
				warning(content);
			}
		},
		error : function() {
			var content = "修改失败";
			warning(content);
		}
	});
}
// 删除LKJ软件版本操作
function deleteVersion() {
	var selectVersion = $("#LKJDataVersionManagerTables").bootstrapTable(
			'getSelections');
	if (selectVersion.length == 0) {
		var content = "请选择要删除的LKJ数据版本!";
		info(content);
	} else {
		var versionId = selectVersion[0].VERSION_ID;
		BootstrapDialog.show({
			title : '提示',
			message : "您确定要删除吗?",
			buttons : [ {
				icon : 'glyphicon glyphicon-check',
				label : '确定',
				cssClass : 'btn-primary',
				autospin : true,
				action : function(dialogRef) {
					dialogRef.close();
					deleteVersionID(versionId);
				}
			}, {
				label : '取消',
				action : function(dialogRef) {
					dialogRef.close();
				}
			} ]
		});
	}
}
// 删除具体ajax操作
function deleteVersionID(versionId) {
	$.ajax({
		url : "../../../LKJSoftwareVersion/deleteVersion",
		type : "post",
		data : {
			"versionId" : versionId
		},
		dataType : "json",
		success : function(data) {
			if (data.flag == 0) {
				var content = "LKJ数据版本删除成功!";
				success(content);
				doSearch();
			} else {
				var content = "LKJ数据版本删除失败!";
				danger(content);
			}
		},
		error : function() {
			var content = "LKJ数据版本删除失败!";
			danger(content);
		}
	});
}
// 表格初始化
var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$('#LKJDataVersionManagerTables').bootstrapTable({
			url : '../../../LKJSoftwareVersion/getVersionList', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			toolbar : '#toolbar',
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			sortName : "VERSION_NAME",
			sortOrder : "DESC",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height : 500, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "PLATFORM_ID", // 每一行的唯一标识，一般为主键列
			showToggle : true, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect : true,
			responseHandler : function(res) {
				if(res.flag==0){
					return {
						"total" : res.content.total,// 总页数
						"rows" : res.content.list
					};
				}else{
					warning(res.errorInfo);
				}
			}, // 是否显示父子表
			columns : [ {
				checkbox : true
			}, {
				field : 'VERSION_ID',
				visible : false
			}, {
				field : 'VERSION_NAME',
				title : 'LKJ数据名称',
				sortable : true,// 是否可排序
				order : "DESC",// 默认排序方式
				formatter : onceHtml
			}, {
				field : 'SOFTWARE_TYPE',
				title : 'LKJ数据类型',
				formatter : status
			}, {
				field : 'VERSION_NUMBER',
				title : '版本号'
			}, {
				field : 'VERSION_DETAIL',
				title : '数据说明'
			} ]
		});
	};
	function status(value, row, index) {
		var s = $(
				"#softwareTypeSearch option[value=" + row['SOFTWARE_TYPE']
						+ "]").text();
		return s;
	}
	function onceHtml(value, row, index) {
		return "<a id='" + row.VERSION_ID
				+ "' href='#' onclick='details(this)'>" + row.VERSION_NAME
				+ "</a>";

	}
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			// pageNumber, searchText, sortName, sortOrder
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : "VERSION_NAME",
			sortOrder : params.sortOrder,
			versionType : "2",
			versionName : $("#versionNameSearch").val(),
			versionNumber : $("#versionNumberSearch").val(),
			softWareType : $("#softwareTypeSearch").val()
		};
		return temp;
	};
	return oTableInit;
};
function details(t) {
	var versionId = t.id;
	var params = "versionId=" + versionId;
	window.location.href = "../../../LKJSoftwareVersion/downloadVersion.action?"
			+ params;
}
var ButtonInit = function() {
	var oInit = new Object();
	// var postdata = {};

	oInit.Init = function() {
		// 初始化页面上面的按钮事件
	};

	return oInit;
};